package emil.stupiec;
import java.util.ArrayList;
import java.util.List;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.ec2.AmazonEC2;
import com.amazonaws.services.ec2.AmazonEC2Client;
import com.amazonaws.services.ec2.model.DescribeImagesRequest;
import com.amazonaws.services.ec2.model.DescribeImagesResult;
import com.amazonaws.services.ec2.model.Image;
import com.amazonaws.services.ec2.model.RunInstancesRequest;
import com.amazonaws.services.ec2.model.RunInstancesResult;
public class Instance_runner {
private static AmazonEC2 ec2;
private static DescribeImagesRequest describe_images_request;
private static RunInstancesRequest run_instances_request;
private static List<Image> images;
private static List<String> image_ids;
private static String image_id;
private static DescribeImagesResult describe_images_result;
public String run_instance() throws Exception{
initialize_aws_variables();
return run();
}
private static void initialize_aws_variables() throws Exception {
AWSCredentials credentials = new PropertiesCredentials(
Instance_runner.class.getResourceAsStream("../../AwsCredentials.properties"));
ec2 = new AmazonEC2Client(credentials);
ec2.setEndpoint("ec2.eu-west-1.amazonaws.com");
image_id="ami-4090a634";
image_ids=new ArrayList<String>();
image_ids.add(image_id);
describe_images_request=new DescribeImagesRequest();
describe_images_request.setImageIds(image_ids);
describe_images_result=ec2.describeImages(describe_images_request);
images=describe_images_result.getImages();
run_instances_request=new RunInstancesRequest(image_id,1,1);
}
private String run(){
try{
if(images.size()==1){
if(images.get(0).getImageId().equals(image_id)){
RunInstancesResult run_instances_result=ec2.runInstances(run_instances_request);
return run_instances_result.getReservation().getInstances().get(0).getInstanceId();
}
}
}catch(AmazonServiceException amazon_service_exception){
System.out.print("Caught Exception: " + amazon_service_exception.getMessage()+"\nReponse Status Code: " + amazon_service_exception.getStatusCode()+"\nError Code: " + amazon_service_exception.getErrorCode()+"\nRequest ID: " + amazon_service_exception.getRequestId());
}
return null;
}
}